﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TechAnalysis
{
    public interface ITechIndicator<T1>: IDataStream<T1>
    {
        /// <summary>
        /// датастрим
        /// </summary>
        IDataStream<T1> DataStream { get; }
        /// <summary>
        /// Загрузка потока данных и всех его значений
        /// </summary>
        /// <param name="newdata"></param>
        void LoadDataStream(IDataStream<T1> newdata);

        /// <summary>
        /// получение значений
        /// </summary>
        /// <param name="count">количество последних значений, если меньше нуля, то выдаются все</param>
        /// <returns>словарь отсортированный по дате</returns>
        Dictionary<DateTime, T1> GetValues(int count = -1);

        /// <summary>
        /// индексация по времени
        /// </summary>
        /// <param name="d"></param>
        /// <returns></returns>
        T1 this[DateTime d] {get;}

        /// <summary>
        /// индексация по номеру, с учетом что значения отсортированны по времени
        /// </summary>
        /// <param name="i"></param>
        /// <returns></returns>
        T1 this[int i]      {get;}



    }
}
